package com.winter.common;

import org.apache.commons.lang3.StringUtils;
import java.util.regex.Pattern;

/**
 * 数据验证专用工具类
 */
public class ValidateUtils {

    private static Pattern EMAIL = Pattern.compile("\\w+([-.]\\w+)*@\\w+([-]\\w+)*\\.(\\w+([-]\\w+)*\\.)*[a-z,A-Z]{2,3}");
    private static Pattern MOBILE_PHONE = Pattern.compile("^[1][3-8]\\d{9}$");
    private static Pattern MD5_32 = Pattern.compile("^[0-9a-zA-Z]{32}$");

    /**
     * 判断是否是合法的32位md5值
     */
    public static boolean isValidMD5(String md5) {
        if (StringUtils.isNotEmpty(md5)) {
            return MD5_32.matcher(md5).matches();
        }
        return false;
    }

    /**
     * 判断是否不是合法的32位md5值
     */
    public static boolean isNotValidMD5(String md5) {
        return !isValidMD5(md5);
    }

    /**
     * 判断是否是合法的email地址
     */
    public static boolean isValidEmail(String email) {
        if (StringUtils.isNotEmpty(email)) {
            return EMAIL.matcher(email).matches();
        }
        return false;
    }

    /**
     * 判断是否不是合法的email地址
     */
    public static boolean isNotValidEmail(String email) {
        return !isValidEmail(email);
    }

    /**
     * 判断是否是合法的手机号
     */
    public static boolean isValidMobilePhone(String phone) {
        if (StringUtils.isNotEmpty(phone)) {
            return MOBILE_PHONE.matcher(phone).matches();
        }
        return false;
    }

    /**
     * 判断是否不是合法的手机号
     */
    public static boolean isNotValidMobilePhone(String phone) {
        return !isValidMobilePhone(phone);
    }
}
